package br.com.sjdr.projeto.gui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;

import br.com.sjdr.projeto.item.Item;
import br.com.sjdr.projeto.item.Pedido;
import br.com.sjdr.projeto.persistencia.PersistirHistorico;
import br.com.sjdr.projeto.persistencia.Persistir_Estoque;

public class GuiItem implements ActionListener {

	static JFrame listaItem = new JFrame(
	"SJDR CONFECÇOES - LISTAGEM ITENS  - ");

	JButton voltar = new JButton("Voltar");

	static JTextArea resultado = new JTextArea(30, 40);
	static JScrollPane scroller = new JScrollPane(resultado);
	static JPanel panel = new JPanel();

	
	 /**
	  * Fun��o responsavel por Imprimir estoque
	  * Trabalha junto com fun��o de sistema apend
	  */
	public void imrprimiEstoque() {
		listaItem.setSize(800, 600);
		listaItem.setVisible(true);
		listaItem.setLayout(null);

		// Centraliza a janela.
		java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit()
		.getScreenSize();
		int componentWidth = listaItem.getWidth();
		int componentHeight = listaItem.getHeight();
		listaItem.setBounds((screenSize.width - componentWidth) / 2,
				(screenSize.height - componentHeight) / 4, componentWidth,
				componentHeight);

		resultado.setLineWrap(true);
		scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
		scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		panel.add(scroller);

		panel.setSize(500, 600);
		panel.setLocation(150, 00);

		listaItem.getContentPane().add(panel);
		resultado.setText("");
		imEstoque(resultado);

		voltar.setVisible(true);
		panel.add(voltar);
		voltar.addActionListener(this);

	}
	 /**
	  * Apoia fun��o imprimir etsoque
	  */
	public void imEstoque(JTextArea resultado) {
		for (int i = 0; i < Persistir_Estoque.estoquelist.size(); i++) {
			resultado.append("\n\n nome do Item "
					+ Persistir_Estoque.estoquelist.get(i).getNomeItem());

			resultado.append("\n nome do Fornecedor "
					+ Persistir_Estoque.estoquelist.get(i).getNomeFornecedor());
			resultado.append("\n Codigo Item "
					+ Integer.toString(Persistir_Estoque.estoquelist.get(i)
							.getCogigo()));
			resultado.append("\n Quantidae em estoque "
					+ Integer.toString(Persistir_Estoque.estoquelist.get(i)
							.getQuantidade()));
			resultado.append("\n Pre�o "
					+ Pedido.f.format(Persistir_Estoque.estoquelist.get(i)
							.getPrecoFinal()));
		}
	}

	
	 /**
	  * Busca Item por codigo
	  * Retorna Item se achado
	  * Ou null se n�o achou
	  * Junto imprime mensagem de sistem
	  */
	public Item buscaCod(int cod) {

		int saida = 0;

		for (int i = 0; i < Persistir_Estoque.estoquelist.size(); i++) {

			if (Persistir_Estoque.estoquelist.get(i).getCogigo() == cod) {
				JOptionPane.showMessageDialog(null,
						"Item encontrado...\n\nItem nome = "
						+ Persistir_Estoque.estoquelist.get(i)
						.getNomeItem()
						+ "\n Quantidade em estoque = "
						+ Persistir_Estoque.estoquelist.get(i)
						.getQuantidade());
				saida = 1;
				return Persistir_Estoque.estoquelist.get(i);
			}
		}
		if (saida != 1) {
			JOptionPane.showMessageDialog(null, "Item n�o achado \n\n");

			saida = 0;
		}
		return null;

	}

	
	/**
	  * Busca Item por nome
	  * Retorna Item se achado
	  * Ou null se n�o achou
	  * Junto imprime mensagem de sistem
	  */
	public Item buscaPorNome(String nome) {

		int saida = 0;
		for (int i = 0; i < Persistir_Estoque.estoquelist.size(); i++) {
			// A função aceita compara independente de case sensitive
			if (Persistir_Estoque.estoquelist.get(i).getNomeItem()
					.equalsIgnoreCase(nome)) {
				JOptionPane.showMessageDialog(null,
						"Item encontrado...\n\nItem nome = "
						+ Persistir_Estoque.estoquelist.get(i)
						.getNomeItem()
						+ "\n Quantidade em estoque = "
						+ Persistir_Estoque.estoquelist.get(i)
						.getQuantidade());

				saida = 1;
				return Persistir_Estoque.estoquelist.get(i);
			}
		}
		if (saida != 1) {
			JOptionPane.showMessageDialog(null, "Item n�o achado \n\n");
			saida = 0;
		}
		return null;

	}

	/**
	 * Chama adi��o de Item 
	 * Trabalha junto a metodos na Classe Item
	 */
	public void adicionarItem() {

		Item.relacinadoInsercaoIten();
		TelaVendedor t = new TelaVendedor();
		t.go();

	}

	/**
	 * Imrpime Historico de Compras
	 * Trabalha Junto com fun��o de sistema apend
	 */
	public void imrprimiHistorico() {
	
		listaItem.setSize(800, 600);
		listaItem.setVisible(true);
		listaItem.setLayout(null);

		// Centraliza a janela.
		java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit()
		.getScreenSize();
		int componentWidth = listaItem.getWidth();
		int componentHeight = listaItem.getHeight();
		listaItem.setBounds((screenSize.width - componentWidth) / 2,
				(screenSize.height - componentHeight) / 4, componentWidth,
				componentHeight);

		resultado.setLineWrap(true);
		scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
		scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		panel.add(scroller);

		panel.setSize(500, 600);
		panel.setLocation(150, 00);

		listaItem.getContentPane().add(panel);
		resultado.setText("");
		imHistorico(resultado);

		voltar.setVisible(true);
		panel.add(voltar);
		voltar.addActionListener(this);
		
		
		
	}

	/**
	 * Apoia metodo de himprimir historico de compras
	 * @param resultado
	 */
	private void imHistorico(JTextArea resultado) {
		for (int i = 0; i < Persistir_Estoque.estoquelist.size(); i++) {
			resultado.append("\n\n nome do Item "
					+ Persistir_Estoque.historicoCompras.get(i).getNomeItem());

			resultado.append("\n nome do Fornecedor "
					+ Persistir_Estoque.historicoCompras.get(i).getNomeFornecedor());
			resultado.append("\n Codigo Item "
					+ Integer.toString(Persistir_Estoque.historicoCompras.get(i)
							.getCogigo()));
			resultado.append("\n Quantidae em estoque "
					+ Integer.toString(Persistir_Estoque.historicoCompras.get(i)
							.getQuantidade()));
			resultado.append("\n Pre�o "
					+ Pedido.f.format(Persistir_Estoque.historicoCompras.get(i)
							.getPrecoFinal()));
			resultado.append("\n Data da compra "
					+ Persistir_Estoque.historicoCompras.get(i)
							.getData());
		}
		
	}



/**
 * Implements actionEvent
 * Bot�es
 */

@Override
public void actionPerformed(ActionEvent e) {
	Object source = e.getSource();

	if (source == voltar) {
		listaItem.setVisible(false);
		voltar.setVisible(false);
		new TelaVendedor();

	}

}


/**
 * Imrpime historico de vendas
 * Gui atualizada por Samuel Moreira
 */
public void imrprimiHistoricoVendas() {
	
	listaItem.setSize(800, 600);
	listaItem.setVisible(true);
	listaItem.setLayout(null);

	// Centraliza a janela.
	java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit()
	.getScreenSize();
	int componentWidth = listaItem.getWidth();
	int componentHeight = listaItem.getHeight();
	listaItem.setBounds((screenSize.width - componentWidth) / 2,
			(screenSize.height - componentHeight) / 4, componentWidth,
			componentHeight);

	resultado.setLineWrap(true);
	scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
	scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
	panel.add(scroller);

	panel.setSize(500, 600);
	panel.setLocation(150, 00);

	listaItem.getContentPane().add(panel);
	resultado.setText("");
	imHistoricoVendas(resultado);

	voltar.setVisible(true);
	panel.add(voltar);
	voltar.addActionListener(this);
	
	
	
}
private void imHistoricoVendas(JTextArea resultado) {
	
	
	for (int i = 0; i < Persistir_Estoque.estoquelist.size(); i++) {
		resultado.append("\n\n nome do Cliente "
				+ PersistirHistorico.pedidosFinalizados.get(i).getCliente());
		resultado.append("\n Peço total "
				+ PersistirHistorico.pedidosFinalizados.get(i).getTotal());
		
	}

	
	
	
	
	
	
	
	
	
}


}
